package com.zxl.jdk8test;

import java.util.function.Predicate;

/**
 * 断言接口
 * Predicate 接口只有一个参数，返回boolean类型。该接口包含多种默认方法来将Predicate组合成其他复杂的逻辑,比如：与，或，非
 * @author zxl
 *
 */
public class PredicateTest {
    
    public static void main(String[] args) {
        //(str) str表示将传入到实际到test的参数，-> 之后的代码表示实际将执行的代码
        Predicate<String> predicate = (str) -> str.isEmpty();
        System.out.println(predicate.test("666"));//false
        //negate 指返回相反的值的Predicate
        System.out.println(predicate.negate().test("666"));//true
        
        System.out.println(myTest((str) -> str.isEmpty(), "123"));
        
//        Predicate<String> isEmpty = String::isEmpty;
//        Predicate<String> isNotEmpty = isEmpty.negate();
    }
    
    public static boolean myTest(Predicate<String> predicate, String arg){
        return predicate.test(arg);
    }
}
